Conventional approaches for determining if a LUN is properly configured for a particular environment are challenging. An application and the environment each have different input/output (IO) profiles. The LUN needs to be custom configured to achieve an optimal performance with different IO profiles. With conventional approaches, to determine if the LUN is configured correctly, an information technology (IT) administrator figures out how to provision a storage array. For example, an IT administrator (or a performance engineer) manually tunes the LUN. Currently available utilities make limited recommendations based on a very limited list of applications (i.e., SQL, Exchange) running on a server.
While creating the LUN, a user decides several parameters. These parameters include (i) LUN segment size, (ii) RAID level, (iii) the number of spindles/drives to use for the LUN, and/or (iv) LUN size. In conventional systems, in order to achieve optimal performance, these LUN parameters are determined by (i) IO size, (ii) sequential versus random IO, (iv) IO segment boundary, (v) performance (i.e., throughput, bandwidth, etc.), (vi) data availability (i.e., how fast data is needed), (vii) data reliability (i.e., how critical the data is), (viii) IO volume and/or (ix) IO ratio (i.e., % read versus % write).
The main disadvantages of conventional solutions are the cost and time involved in performance optimization. The IT administrator doing the fine tuning of the LUN needs to understand the IO profile of each application and/or how a RAID works. The IT administrator will also need to have the knowledge of the expected performance of the storage array network (SAN). Once the IT administrator determines what the appropriate settings should be, the LUNs need to be reconfigured and the performance measured. If the performance statistics do not match up with the expected performance numbers, the IT administrator will have to adjust the LUNs again. This process can take several iterations. Conventional solutions are lengthy and rely on an individual with the appropriate level of expertise. As a result, many installed storage arrays do not run at optimal performance levels.
It would be desirable to implement an application independent storage performance optimizer.